package notice.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @description: 扣款通知: 账单公共参数抽取
 * @author: zk
 * @since: 2022-08-16 16:47
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderNoticeDto {
    // 账单类型 ：客车账单-car，货车原订单-truck，货车拆分账单-truck_split，货车合并账单-truck_merge
    public static final String ORDER_TYPE_CAR = "car", ORDER_TYPE_TRUCK = "truck",
            ORDER_TYPE_TRUCK_SPLIT = "truck_split", ORDER_TYPE_TRUCK_MERGE = "truck_merge";
    /**
     * 账单类型
     */
    private String orderType;
    /**
     * 当时操作的支付渠道，微信、钱包 ...
     */
    private Integer currPayChannel;
    /**
     * id
     */
    private Long id;
    /**
     * 订单号,系统内部产生，唯一
     */
    private String orderNo;
    /**
     * 交易编号
     */
    private String tradeNo;
    /**
     * 车牌号码
     */
    private String plateNumber;
    /**
     * 车牌颜色
     */
    private Integer color;
    /**
     * 高速过路费总金额（单位：分）
     */
    private Long transFee;
    /**
     * 服务费金额（单位：分）
     */
    private Long serviceFee;
    /**
     * 手续费金额（单位：分）
     */
    private Long rateFee;
    /**
     * ETC卡编号
     */
    private String etcNo;
    /**
     * 渠道编号
     */
    private String channel;
    /**
     * 交易时间或通行时间
     */
    private Date transTime;
    /**
     * 对账日
     */
    private Date reconciliationDay;
    /**
     * 扣费状态,0-默认,1-支付成功,2-转入退款,3-已受理，未支付,4-支付失败
     */
    private Integer payStatus;
    /**
     * 支付完成时间
     */
    private Date paySuccessTime;
    /**
     * 交易状态描述
     */
    private String payDesc;
    /**
     * 代扣时微信支付系统生成的订单号
     */
    private String transactionId;
    /**
     * 批次号
     */
    private String batch;
    /**
     * 卡类别
     */
    private Long etcTypeId;
    /**
     * 扣费渠道，1-钱包 2-微信
     */
    private Integer payChannel;
    /**
     * 重试状态:0-默认 1-重试 2-重试成功 3-停止重试
     */
    private Integer retryStatus;
    /**
     * 重试成功时间
     */
    private Date retryTime;
    /**
     * 冲抵状态:0-默认 1-重试成功需要冲抵  2-待冲抵 3-已冲抵 4-冲抵失败
     */
    private Integer walletOffset;

}
